package gov.guuiwaternow.view;

import gov.guuiwaternow.list.R;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;

/**
 * 
 * @author 최진욱/choijinwook84@gmail.com
 * @since 2011-10-07
 * main Activity에서 전달하는 값을 받아서 WebView에 보여줍니다.
 *
 */
public class ArisuWebView extends Activity {
	
	/**
	 * 웹주소를 저장할 인스턴스 변수
	 */
	private ArrayList<String> arisuUrl = new ArrayList<String>();
	
	/**
	 * 사용자가 선택한 리스트 위치를 저장할 인스턴스 변수
	 */
	private int listIndex;
	
	/**
	 * 웹주소를 저장할 인스턴스 변수
	 */
	private String[] urls;
	
	/**
	 * 리소스를 담을 Resources객체의 레퍼런스 변수
	 */
	private Resources res;
	
	/**
	 * 생성자 입니다.
	 */
	public ArisuWebView(){
		
	};
	
	/**
	 * @param urls 주소값을 배열로 받습니다.
	 * 생성자 입니다.
	 */
	public ArisuWebView(String[] urls) {
		this.setArisuUrl(urls);
	};
	
	/**
	 * @param urls 배열로 받은 주소값을 ArrayList 인스턴스 변수에 저장합니다.
	 */
	public void setArisuUrl(String[] urls){
		
		if(urls.length > 0) {
			for(int a = 0; a < urls.length; a++) {
				arisuUrl.add(a, urls[a]);
			}
		}
		
	}
	
	/**
	 * @return 주소값이 저장되어있는 ArrayList를 반환합니다.
	 */
	public ArrayList<String> getArisuUrl() {
		return arisuUrl;
	}
	
	/**
	 * @param listIndex 사용자가 선택한 리스트의 위치를 받아 저장합니다.
	 */
	public void setListIndex(int listIndex){
		this.listIndex = listIndex; 
	}
	
	/**
	 * @return 사용자가 선택한 리스트의 위치를 반환합니다.
	 */
	public int getListIndex() {
		return listIndex;
	}

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		/*
		 * 상위 클래스에 onCreate함수에 Bundle객체를 전달합니다.
		 */
	    super.onCreate(savedInstanceState);

	    // TODO Auto-generated method stub
	    /*
	     * 화면이될 Layout를 초기화합니다.
	     */
		setContentView(R.layout.view);
		
        /*
         * String 및 Array등으로 xml에 저장되어있는 정보들을 가져와
         * Resources객체의 레퍼런스 변수에 저장합니다.
         */
		res = getResources();
		
        /*
         * strings.xml 에 저장되어 있는 arisu_urls를 가지고 옵니다.
         */
		urls = res.getStringArray(R.array.arisu_urls);
		
		/*
		 * 주소 값을 ArrayList에 저장합니다.
		 */
		setArisuUrl(urls);
		
		/*
		 * 호출한 Activity(main.java)에서 보낸 Intent를 받아옵니다.
		 */
		Intent intent = getIntent();
		
		/*
		 * main에서 보낸 사용자가 선택한 리스트의 순번을 Flag값에 담아 보내온 것을
		 * listIndex에 저장합니다.
		 */
		setListIndex(intent.getFlags());
		
        /*
         * 초기화된 화면중 리스트를 보여줄 Layout을 찾아 지정해줍니다.  
         */
		WebView webView = (WebView) findViewById(R.id.arisuWaternowView);
		
		/*
		 * WebView화면에 Zoom버튼을 초기화 합니다. 
		 */
        View zoom = webView.getZoomControls();
        
        /*
         * WebView에 Zoom기능을 활성화 합니다. 
         */
        webView.getSettings().setSupportZoom(true);
        
        /*
         * WebView에 Zoom기능을 제어 기능을 활성화 합니다.
         */
        webView.getSettings().setBuiltInZoomControls(true);
        
        /*
         * WebView에서 javascript를 활성화 합니다.
         */
        webView.getSettings().setJavaScriptEnabled(true);
                
        /*
         * View영역 초기화 합니다.
         */
        webView.removeViewInLayout(zoom);
        
        /*
         * 줌버튼을 배치합니다.
         */
        webView.addView(zoom);

        /*
         * 줌버튼 보이게
         */
        zoom.setVisibility(View.VISIBLE);
        
        webView.loadUrl(arisuUrl.get(getListIndex())); 
	}

}

